home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 1 / United Public Domain Gold 1 .iso / c / skick.doc < prev    next >
Text File  |  1994-08-04  |  30KB  |  611 lines

  1.  
  2.                         +++++++++++++++++++++++++
  3.                         +                       +
  4.                         + S K I C K v 2.0 & 3.0 +
  5.                         +                       +
  6.                         +  (C) SinSoft 1992,93  +
  7.                         +                       +
  8.                         +     User's manual     +
  9.                         +                       +
  10.                         +++++++++++++++++++++++++
  11.  
  12. PLEASE READ THIS DOC CAREFULLY !!! SERIOUS INFORMATION IS GIVEN HERE !!!
  13. READING THIS MANUAL WILL PREVENT YOU FROM HAVING PROBLEMS WITH THE PROGRAM !!!
  14.  
  15. Introduction.
  16. =============
  17.  
  18. SKick  is  the replacement for Kickit, ZKick and LKick kickers, intended for use
  19. on  A500,  A600, A1200 or A2000 machines with OS2.0 in ROM (for instance A500+).
  20. Its  task  is to soft-kick any other version of kickstart into RAM.  'Any other'
  21. means  also  the  1.3  kickstart,  which  was unavailable to kick with any other
  22. kicker.   KickIt  and  ZKick  both require 1.3 ROM for operation and function of
  23. LKick from 2.0 isn't very stable.  SKick is fully assembly-written program, with
  24. many facilities added.  The main advantages of SKick are:
  25. - ability to relocate any kickstart image, when the relocation table is supplied
  26.   into any  kind  of  RAM  (CHIP,  FAST,  EXP etc.)
  27. - standard  operation  (like  Kickit etc.), when table is not available
  28. - patch function (patches kickstart image prior its start, which may correct
  29.   known bugs etc.), using supplied patch file
  30. - powerful command line and Workbench interface
  31. - Graphic User Interface (GUI)
  32. - all operations during kicking are made so 'purely' as possible, all structures
  33.   are exactly in the same state as if kicked from ROM
  34. - small code size (even if most powerful, SKick is the shortest from all the 
  35.   kickers)
  36. - relocation tables for new kickstart versions will be automatically available
  37.   for registered users
  38. - loaded kickstart survives any 'soft crash' (without corrupting execbase or 
  39.   kickstart itself) and user reset
  40. - allows use of CoolCapture, romtags and memtags with user programs without any
  41.   limitation
  42. - allows adding a non-autoconfig memory board 'on the fly' with features
  43.   unavailable with other memory adding programs
  44.  
  45. 1. Copyright.
  46. =============
  47.  
  48. SKick and its documentation files are Copyright (C) SinSoft 1992, Prague, CR.
  49. ============================================================================
  50.  
  51. This  archive  may be freely redistributed, but only in totally unchanged state,
  52. i.e.   no  files  can be added, deleted, modified etc.  All copyright notices in
  53. the   program   and  its  documentation  must  remain  on  their  places.   Also
  54. '.displayme' and other files, usually with 'wonderful' ANSI graphics, so obvious
  55. at various BBS's, cannot be added.
  56.  
  57. 2. Contents of the archive.
  58. ===========================
  59.  
  60. This .LHA archive MUST contain following files:
  61.  
  62.     SKick          -  executable code of the program
  63.     SKick.info    -  program icon
  64.     SKick.doc     -  this file
  65.     History.doc   -  development history - PLEASE READ FOR LATEST CHANGES
  66.     AllocKick     -  a little utility for non-autoconfig memory owners
  67.     AllocKick.doc -  its separate documentation
  68.     KickStat      -  a little utility for checking the kickstart image status
  69.     KickStat.doc  -  its separate documentation
  70.         
  71.  
  72.     directory Kickstarts:
  73.         kick40038.A4000.BETA.RTB    a) d)
  74.         kick40038.A4000.BETA.PAT
  75.         kick40038.A600.BETA.RTB        a)
  76.         kick40038.A600.BETA.PAT
  77.         kick40009.A4000.BETA.RTB    a) d)
  78.         kick40009.A4000.BETA.PAT
  79.         kick40009.A600.BETA.RTB        a)
  80.         kick40009.A600.BETA.PAT
  81.         kick40003.A3000.BETA.RTB    a)
  82.         kick40003.A3000.BETA.PAT
  83.         kick40003.A600.BETA.RTB        a)
  84.         kick40003.A600.BETA.RTB
  85.                 kick39115.A3000.BETA.RTB    a) e)
  86.         kick39115.A3000.BETA.PAT
  87.         39115_Romkick.RTB        a)
  88.         39115_Romkick.PAT        
  89.         kick39110.A500.BETA.RTB        a)
  90.         kick39110.A500.BETA.PAT
  91.         kick39106.A1200.RTB        b)
  92.         kick39106.A500.BETA.RTB        a)
  93.         kick39106.A500.BETA.PAT
  94.         kick39046.A500.BETA.RTB        a)
  95.         kick39046.A500.BETA.PAT
  96.         kick37175.A500.RTB         b)
  97.         kick36143.A3000.RTB        c)
  98.             kick36143.A3000.PAT
  99.         kick34005.A500.RTB
  100.         kick34005.A500.PAT
  101.         kick33180.A500.PAT
  102.         kick33180.A500.RTB
  103.  
  104. Notes:
  105.     General:  All the files are created for use on the A500/600/1200/2000
  106.     although  their  original  target  machine  may  be different.
  107.     On  the original target machine, they may be usable without .PAT file,
  108.     but it is not guaranteed.
  109.  
  110. a)
  111.     These kickstart versions are available only to official developers.
  112. b)
  113.     Patch table not required to use these kickstarts.
  114. c)    
  115.         This 'historical' version of OS is obsolete and it is not
  116.         recommended to use it.
  117. d)
  118.     CPU >=68020 is needed to run this release because of the new
  119.     utility.library.
  120.  
  121. e)    Original A600/1200 files are NOT supported for this release.
  122.     A600/1200 users can't use PCMCIA and hard drive with this kickstart.
  123.  
  124. NOTE TO COMMODORE:
  125.   Sorry  CBM  for  a  small  law-break (I hope small) from my side:  I'm not the
  126. official  developer,  but I have Your BETA releases on my drive:  they came into
  127. Czech republic  from  some  pirate  BBS  in  Germany and they are available from
  128. general  Amiga population.  I've never misused or abused them and I also keep in
  129. mind  Your  copyrights:   I  never redistribute them.  But when I've got them, I
  130. wanted  to help another people and do some useful work:  All known kickers (they
  131. are  PD,  aren't they?) seemed to be imperfect in some aspects for me and then I
  132. realized  to  write my own kicker to meet all my needs and give it to all people
  133. which need it too.
  134.  
  135. 3. System requirements.
  136. =======================
  137.  
  138. SKick may be operated, if the following requirements are met:
  139. - Computer: Amiga 500, 600, 1000, 1200 and 2000 with 68000, '010, '020 or 'EC030
  140.   processors
  141. - Minimum 1 meg of RAM (possibly only Chip RAM, expansion RAM isn't needed when
  142.   relocation is to be used)
  143. - Kickstart   2.0  or  3.0  in  ROM  (not tested with V36, because there are not
  144.   machines with V36 ROM in Czechoslovakia, developed and tested under 37.175 and
  145.   39.106)
  146.  
  147. That's  all.  When Your system meets all these requirements, You are able to use
  148. SKick.   Of course, large amount of RAM (especially expansion RAM) will help You
  149. use non-relocatable kickstarts (they are located from $200000 obviously), but it
  150. is not necessary.
  151.  
  152. Skick is designed to work on machines without a MMU.  For machines with the MMU,
  153. there  exist suitable software to do such work.  Especially, program SoftBoot is
  154. available  to  official developers and allows to remap any RAM to the $F8 space,
  155. thus emulating the ROM.
  156.  
  157.  
  158. NOTE:  Because of a nature of 2.0 system, it is impossible to kick anything from
  159. address  $c00000  exactly.  The first usable address is $c40000.  1.3 system did
  160. allow  this, 2.0 doesn't.  It is because the system restart is more drastic than
  161. on 1.3 system. 
  162.     
  163.  
  164. 4. Installation.
  165. ================
  166.  
  167. Installation  of  SKick  and  related  files  is  very  simple.   Please  follow
  168. instructions below:
  169.  
  170. On  Amiga  3000,  there  is the convention, that during cold start process, file
  171. 'DEVS:kickstart' is read into memory and run.  To make the possibility to choose
  172. from  several  kickstarts,  SKick searches kickstart images and related files on
  173. the directory DEVS:kickstarts.  Your first step is to issue the command
  174.  
  175. >Makedir DEVS:kickstarts 
  176.  
  177. from  the  Shell,  so  the appropriate subdirectory will be created on Your boot
  178. partition (usually hard disk).
  179.  
  180. Your  second  step  is  to  copy  the  auxiliary files (.RTB and .PAT) from this
  181. archive,  if  You  wish  to  use  them, and to add appropriate kickstart images.
  182. SKick can handle both 'exact ROM images' and files intended for Kickit and other
  183. kickers.
  184. When  copying  kickstart  images,  rename them with names of .RTB/PAT files, but
  185. without  any  extension; or, vice versa, rename auxiliary files according to the
  186. main  file.  All the files of one particular kickstart must have identical names
  187. (except extensions).
  188.  
  189.  
  190. IMPORTANT  NOTE:  There are no kickstart images in this archive!  Supplied files
  191. only  allow  to  use  standard  1.2  (33.180), 1.3 (34.5), 2.04 (37.175) and 3.0
  192. (39.106) ROM images, which may be obtained from Commodore.  There are also files
  193. for  another  kickstart versions, available to official developers only.  I hope
  194. that SKick will help them to keep their work.  It's only a dream for me to be an
  195. official developer...  
  196. ANOTHER  NOTE:  Last days, more and more people ask me why their kickstart files
  197. can't  be  used  with SKick.  The reason is simple:  their files are PATCHED, so
  198. the  checksum  doesn't match to the reloc and patch tables.  They also ask me to
  199. support  these  patched  files.   My answer is simple:  NO.  NEVER.  Why ?  It's
  200. also  simple:   1) These files are obviously available on various BBSs, they are
  201. never  distributed  by Commodore.  Their contents is unpredictable, similarly as
  202. their   function.    All   the  patches  do  'cosmetic  changes'  like  removing
  203. Beta-requesters,  replacing  various  texts  in  the ROM with another ones (like
  204. Amiga  Workbench  > AmigaOS 3.0) etc.  However, there is no way how to determine
  205. all  the  patches  and  verify  them  for their correctness (I think that such a
  206. 'patcher' can't be a good programmer) 2) Because such files can be considered as
  207. pirate  files,  their  support  may  be interpreted as support of piracy itself.
  208. However,  SKick  was  never  designed  to  be  the pirate program and I will not
  209. support piracy as such.
  210.  
  211.  
  212. The  third step is to copy SKick itself (with its icon) into any place where You
  213. wish to have it.  Please read the following chapter for more explanation.
  214.  
  215. 5. SKick usage
  216. ==============
  217.  
  218. SKick may be called either from the Shell or from the Workbench.
  219.  
  220. 5.1 Invocation from the Shell
  221. =============================
  222.  
  223. When invocating SKick from the Shell, following template should be used:
  224.  
  225. NAME,ADR/K,FORCE/S,EXT/S,CHIP/S,FAST/S,NOEXT/S,NOREL/S,NOPATCH/S,QUIET/S,
  226. GUI/S,RELSTACK/S,FASTRES/S,KILLTAGS/S,CORR5M/S,DEBUG/S,ADDMEM/K
  227.  
  228. There are three optional parameters and many switches.
  229.  
  230. NAME
  231. ==== 
  232. This  parameter  specifies  the  file name with full path of the kickstart to be
  233. loaded.   If  omitted,  SKick will do nothing, until GUI is called either by its
  234. switch  (GUI)  or  by pressing left mouse button during program run.
  235.  
  236. ADR
  237. ===
  238. ADR parameter allows You to specify the address for the relocatable kickstart to
  239. be  loaded.   The  address should be entered in hex.  NOTE:  This option is only
  240. useful  for  special  cases,  like debugging etc.  Normally, the fully automatic
  241. search  for  the  appropriate  place  is  performed  and  the best place for the
  242. kickstart  is found.  NOTE for users with 'kickstart RAM':  A1000's or any other
  243. machines,  having  RAM  from $F00000, allow loading into this location.  In such
  244. case, the command SKick <name> ADR F00000 FORCE has to be used, as the kickstart
  245. RAM  isn't  normally  accessed, and obviously it is not added to the free memory
  246. list.
  247.  
  248. ADDMEM
  249. ======
  250. This  parameter was introduced in V3.40.  It does a great magic:  it adds a non-
  251. autoconfigurable  memory  board by the method, allowing its full usage like with
  252. fully  autoconfigurable  one.   It  means that the board is linked to the system
  253. very, very soon, so soon that execbase and other library bases are created in it
  254. instead of the Chip RAM, as usual.  Said by words of the 3.0 OS, the board gains
  255. the 'MEMF_KICK' attribute, allowing RAD and other interesting system features to
  256. be created there.  Syntax of this option is
  257.            ADDMEM <mem base>/<mem length>[/<priority>[/<attributes>]]
  258. Arguments  are separated by slashes (like for console window) and may be entered
  259. in  hex  or  in decimal (priority).  To enter in decimal, use '_' (underline) as
  260. the  first  character.  You may also specify a negative priority using the minus
  261. sign.   The last two parameters are optional.  Default values are 0 for priority
  262. and  5  for  attributes  (MEMF_FAST  and  MEMF_PUBLIC).   
  263. For  example,  adding  a non-autoconfigurable board at $1000000 with 2Meg may be
  264. done  with  the  option  'ADDMEM 1000000/200000/_25'.  You can load kickstart to
  265. this memory using '32BIT' option simultaneously (see later).  
  266. NOTES:  
  267. If  you  are  used  to use command line memory adders like AddMem or Alloc, they
  268. become  useless  now.   If the SKick command is present at the first line of the
  269. startup-sequence,  it  does all its work automatically.  
  270. If  the  memory board has the size matching exactly the kickstart size (half-Meg
  271. board with 3.0 system, for example), it is better to use FORCE option instead of
  272. adding  the memory to the system.  However, you may add this memory and load the
  273. kickstart  image  to  any  other  location.  
  274. This  option DOESN'T WORK if the ROM kickstart is selected by the GUI.  In fact,
  275. SKick  is not active in such a case, so it cannot add anything anywhere.  It may
  276. be  also ignored in special cases like being kicked without this option and then
  277. rekicking with it using GUI.
  278.  
  279. FORCE
  280. =====  
  281. This  switch  allows  You  to  force  load  to  the place, which is not normally
  282. contained  on  the  memlist.  It is designed to help when loading kickstart into
  283. non-autoconfiguring  memory  expansion  board, which was not added to the system
  284. yet.   This  switch is not recommended for general use, as its incorrect use may
  285. cause  drastic  unpredictable  results.   No  checking  is done if the memory is
  286. present;  if  it  isn't  the 'Kickstart image has incorrect checksum' message is
  287. issued and the program terminates.
  288.  
  289. EXT,CHIP,FAST
  290. ============= 
  291. These 3 switches specify the kind of memory the free space will be searched for.
  292. Only  one of them may be selected; when unspecified, all standard memory address
  293. ranges are scanned in the order of EXT, FAST and CHIP.
  294.  
  295. NOEXT
  296. =====
  297. This  switch  excludes external memory from being searched.  Search is performed
  298. for FAST and CHIP memory only.  This switch may be used, if user wants to have a
  299. big  amount of memory in one large block.  Normally, its use is not recommended,
  300. because the speed of kickstart will be decreased when multi-bitplane video modes
  301. are selected.
  302.  
  303. NOREL
  304. =====
  305. NOREL  switch  disables  the  relocation process even if the relocation table is
  306. present.   Kickstart  will  be  loaded  exactly to the place it is assembled, if
  307. available.   When the kickstart is assembled from $200000 and You have expansion
  308. RAM,  there  are  no  problems.  Problems will occur when using normal ROM image
  309. from $f80000 or $fc0000, for example kickstart 1.3.  In these cases, this switch
  310. cannot be used.
  311.  
  312. NOPATCH
  313. =======
  314. This  flag  suppresses  the patch facility.  Normally, when .PAT file is present
  315. for  given  kickstart,  it will be opened and kickstart patched to correct known
  316. bugs.   When  this flag is used, patching is suppressed.  NOTE:  Some kickstarts
  317. may  REQUIRE  patching.   For  example,  39.46  Beta  contains very serious bugs
  318. preventing it from being started without patching on most machines without 68020
  319. or  greater  CPU.   Standard 1.3 must be patched to allow more than 512K of CHIP
  320. RAM  during  reboot  and to allow correct performing of user reset (CTRL-LA-RA).
  321. Also  all the Rekick type kickstarts for A500 etc.  (all the V39/V40 kickstarts)
  322. need patching to operate (system will crash without patching).
  323.  
  324. QUIET
  325. =====
  326. The  QUIET flag supresses all messages writen by the program.  When started from
  327. Shell,  it  has  the  same  effect  like  >NIL:  redirection.  When started from
  328. Workbench, program window is not opened.
  329.  
  330. GUI
  331. ===
  332. The  GUI  switch  activates  the  GUI  screen  of  the program.  GUI may also be
  333. obtained  by pressing the LMB during program run; this may be used when SKick is
  334. run from Startup-Sequence automatically.
  335.  
  336. RELSTACK
  337. ========
  338. In current versions of 3.0 (V39.106 and above), for example in A1200, supervisor
  339. stack is allocated from the top of Chip RAM, when Fast RAM is unavailable.  This
  340. causes  problems  on  machines with Chip RAM only, such as unexpanded A1200.  To
  341. prevent this, RELSTACK option should be included in the command line or ToolType
  342. flag.   When  this  option  is  active,  supervisor  stack is transferred to the
  343. beginning  of  RAM  (standard  AllocMem) and the space already allocated is made
  344. free  prior  the kickstart is attempted to load.  
  345. This  option  is not affected by the GUI mode and cannot be selected from there.
  346. In  other situations than mentioned above (3.0 ROM & Chip RAM only), use of this
  347. option is useless and causes greater memory fragmentation.
  348.  
  349. FASTRES
  350. =======
  351. This option allows Skick's resident module to be allocated in Fast RAM.  Default
  352. memory  location for the module is somewhere in Chip RAM, because it is the most
  353. safe  place.   If particular configuration allows it, specifying this option may
  354. increase speed of reboot/reset.  This option is ignored when booting 1.3 system,
  355. because  it is not usable in this case.  It may also cause problem under certain
  356. conditions.  If Your machine crashes with this switch active, don't use it.
  357.  
  358. KILLTAGS
  359. ========
  360. This  option  allows to kill all the KickTags and MemTags as well as CoolCapture
  361. vector  before  installing SKick's ones.  This ensures that the machine is clear
  362. when  the  new  kickstart  starts.   Note  that  this is done automatically when
  363. kicking  1.3 system (there is a risk of incompatibility of the modules available
  364. for  2.0  only  (like  NewAlert))  or  when  performing hard-load (risk that the
  365. modules or their parts are located in memory occupied by kickstart image later).
  366.  
  367. CORR5M
  368. ======
  369. This  option  is  useless  for the most of users except owners of GVP A530 Turbo
  370. Harddisk.   Those may buy 4M expansion memory modules (SIMMs) to expand original
  371. 1M  capacity  of 32bit RAM.  The manufacturer doesn't recommend mixing of 1M and
  372. 4M  modules;  if  it  is done (4M one must be the first, 1M one the 2nd), system
  373. reports 8 Megs of total capacity, but physically it has 5 Megs with the last one
  374. Meg  mirrorred  4  times.   CORR5M  option  allows  to use this configuration by
  375. correcting  the  BoardSize item of the memory board's ConfigDev structure to the
  376. correct 5 Megs.
  377.  
  378. DEBUG
  379. =====
  380. Sometimes  users  report  incorrect SKick operation, but it is hard to determine
  381. the  cause of it.  To gain additional information about the kicking process, the
  382. DEBUG option was introduced.  When active, two special SKick features are turned
  383. on:  
  384. 1)  The  message  'Space  for  resident module allocated at $XXXXXXXX' is issued
  385. during  the  Skick  run.  The programmer then may decide if it is correct, or he
  386. may  view  it  using the debugger etc.  
  387. 2)  After  every reboot, color effects are visible on the screen.  These effects
  388. are  tracking  the SKick resident module functions and they may really help with
  389. finding problems.  The colors have 'pastel' shades as the opposite of the bright
  390. ones  when  the  kickstart  itself  reports an error condition.  For the general
  391. user, it is important that the colors should appear in the order of (red, green,
  392. blue)   or  maybe  (green,  red,  green,  blue)  -  it  depends  on  the  memory
  393. configuration.   All the colors must be detectable, although some of them may be
  394. displayed  for  a very short time - it depends on the CPU speed.  When the Skick
  395. doesn't  work  correctly (crashes, doesn't recognize expansion boards, kickstart
  396. isn't  reset-proof etc) please try this option, observe the screen carefully and
  397. mail me a bug report with Your observation included.
  398.  
  399.  
  400. 5.2 Invocation from Workbench.
  401. ==============================
  402.  
  403. Invocation  of  the  program from Workbench is very simple:  double-click on its
  404. icon  and  it  will  be performed.  Using 'Information', You may specify all the
  405. Tool Types like from Shell.  All switches are defined as FLAGS.
  406.  
  407. One example:
  408. NAME=devs:kickstarts/kick39046
  409. FLAGS=QUIET|EXT
  410.  
  411. This  definition  automatically loads kickstart named kick39046, does relocation
  412. and  patching,  scans only EXT memory for the space and doesn't issue any screen
  413. output.
  414.  
  415. 5.3 Suggested usage
  416. ===================
  417.  
  418. SKick  is  designed to be called as the first command from the Startup-sequence,
  419. either  with any name, or without it.  When the name is present, SKick will load
  420. appropriate  kickstart  image,  when  running  from  ROM  one.  When the name is
  421. missing,  SKick  will  do  nothing  and remain in ROM.  HOWEVER:  If the user is
  422. holding  LMB during Skick's run, Skick will open its Graphic User Interface.  It
  423. is  the screen very similar to Boot Menu.  There are all the kickstarts found in
  424. the  DEVS:Kickstarts  directory  displayed  and the user may choose any of them.
  425. The ROM kickstart is also displayed as one of them.  They are sorted accordingly
  426. to  their  versions  and revisions.  There are only version and revision numbers
  427. displayed,  not the names of disk files, with the remark (RAM) or (ROM).  In the
  428. lower  part  of  screen, there are 3 gadgets:  Patching (ON/OFF), Load into (ANY
  429. RAM/CHIP  RAM/FAST  RAM/EXP  RAM/NOT  EXP  RAM/) and Relocation (ON/OFF).  These
  430. gadgets play the role of command line switches.
  431.  
  432. Once the GUI is activated, the selection must be made (there is no CANCEL gadget
  433. in  this  version, may be in future ...).  After the selection is made, selected
  434. kickstart  is  simply loaded, regardless of the actual system status (of course,
  435. when  the currently running kickstart is selected, it is NOT reloaded).  This is
  436. done  in  TWO  steps, if necessary.  Let's suppose that RAM kicstart is running,
  437. and we wish another RAM kickstart.  Immediately, SKick will reset the machine to
  438. ROM  and  reboot  it,  but  it  remembers  Your choice first.  When started from
  439. startup-sequence,  it  ignores  all its defaults and also the LMB, automatically
  440. loads  required  RAM  kickstart  and  reboots  again.  When it is called now, it
  441. ignores  its  defaults,  but LMB may be used to change kickstart using GUI.  The
  442. new  kickstart will remain active until next cold start (i.e.  not reboot/reset)
  443. of the machine is performed.  When some loaded kickstart is default and You wish
  444. to  remain  in  ROM,  after  selecting it from the GUI Your select overrides the
  445. default.  Even if rebooted, SKick will NOT load its default file and will remain
  446. in  ROM.   As  an  example,  when we wish to beta-test version 39.110 for a long
  447. time, we put into startup-sequence this line as a first command:
  448.  
  449. SKick devs:kickstarts/kick39046 QUIET
  450.  
  451. This  will  start  39.046  kickstart immediately after system power-up.  When we
  452. wish  to  remain  in  ROM or to use another kickstart, for example 34.005, it is
  453. necessary  to  hold LMB during boot (if we boot from HD it is only 2-3 sec after
  454. Boot  Menu),  and  to  select  our  choice.   Until next cold start (power down,
  455. double-reset  as  explained below or very hard crash), the selection will remain
  456. active  and  SKick  will not be doing anything.  
  457. It is a good idea, to put the SKick icon also in some place to change kickstart,
  458. when  the  system  is fully up and running.  Suggested setting is to use the GUI
  459. switch,  which will bring the menu screen automatically and in every case. 
  460.      NOTE:  When in the Startup-sequence, in the SKick command, the name is used
  461. (i.e.  some RAM kickstart is selected as a default), it is necessary to put some
  462. name  to  the  icon  too,  even if any name is overriden with our choice.  It is
  463. necessary  because  the  Skick  called  from Workbench must know the conditions,
  464. which  have  its  'college' from startup-sequence.  So the suggested setting for
  465. Workbench is:
  466.  
  467. NAME=DUMMY (or anything else)
  468. FLAGS=GUI
  469.  
  470. or  only  the  second  line  if  the  default kickstart is ROM (no name given in
  471. startup-sequence) or the SKick command is not used in it at all.
  472.  
  473. NOTE:   The  name  of  kickstart  file  is  limited  in  length.  Maximal length
  474. correctly  processed  by  SKick  is 32 characters.  It is the length WITHOUT the
  475. path,  only  pure  filename.  Please accept this limitation.  Longer names cause
  476. malfunction (not crash) of SKick.
  477.  
  478. To  force  the machine to return to the ROM kickstart, very simple operation may
  479. be   used.    The  user  simply  hits  the  reset  combination  (Ctrl-LeftAmiga-
  480. RightAmiga).   The display will disappear from the screen.  After some time from
  481. releasing  reset  buttons,  the screen color will change to 'medium gray' (it is
  482. the  FIRST  color change from many others).  ALso the power LED will shine fully
  483. from  this  moment.   This  is  the exact time to hit the reset combination once
  484. again.   Now,  any  reset-resistant things (all captures, memtags, romtags etc.)
  485. are off and system is performing cold start. I think that there is no need for a
  486. special program (like KillZKick), because this operation is handy and easy.
  487. Note: This doesn't work on A1200. Sorry. The solution is coming...
  488.  
  489.  
  490.  
  491. 6. Theory of operation
  492. ======================
  493.  
  494. This chapter will be included only in the developer's package.
  495.  
  496.  
  497. 7. Troubleshooting
  498. ==================
  499.  
  500. Symptom            Cause            Solution
  501. ---------------------------------------------------------------------------
  502. Error message from    According to the    According to the message
  503. SKick is displayed    message
  504.  
  505. Power LED blinks    You are trying to    Try a different kickstart to 
  506. after kicking        kick the Rekick type    find the problem
  507. Yellow screen        kickstart without the 
  508. Or the kickstart    patch file (.PAT) or 
  509. stucks the machine    You are trying to kick 
  510.             the A3000/A4000
  511.             image without patching
  512.             on A500 
  513.             
  514.  
  515. Alerts from RAM kick-    Running '020+ image on    Use another kickstart version
  516. start            '000 system
  517.  
  518.  
  519. Kickstart does not    ColdCapture        Do not use programs modifying
  520. survives reboot        changed, ExecBase    ColdCapture and corrupting
  521.             corrupted        system areas
  522.  
  523. Kickstart does not    Crash too deep        Don't crash :-)
  524. survives crash        (ExecBase destroyed)
  525.  
  526. Power LED blinks    Kickstart checksum    Possibly after a crash.
  527. repeatedly, RED        failed (image        Don't modify running images!
  528. screen            patched/destroyed)
  529.  
  530. Any other        I don't know        Ask me for a solution, if You
  531.                         can't find any (use E-mail).
  532.                         Use the DEBUG mode first!
  533. 8. File structures
  534. ==================
  535.  
  536. 8.1 .RTB file
  537.  
  538. .RTB  file  consists  of  two parts.  The first part contains all the relocation
  539. offsets  compressed  by  my  own simple algorithm.  It is created with a special
  540. program  called  RTG  (relocation  table generator) from specially pre-processed
  541. kickstart  image.   How  to  get  this image, it is my magic and I'll never tell
  542. anybody  about  it.  One note only:  generation of 39.046 .RTB took 1 1/2 hours.
  543. (Manual work, + about 10 mins my 7MHz '010 CPU time).  Second part contains BCPL
  544. relocation  table and it is required for 1.3 ROM only.  It was created manually,
  545. analysing  dos.library,  which is written in BCPL in 1.3.  .RTB file is not easy
  546. to create.  I don't recommend anybody to try it *without* very good knowledge of
  547. assembly  language and machine code (not the same).  N.B.  Auxiliary tools to do
  548. such work took 1 month to develop.
  549.  
  550. 8.2 .PAT file
  551.  
  552. Patch file has a very simple structure.  It contains pairs of longs.  Every pair
  553. represents  an  offset  from  kickstart  beginning (first long) and the value to
  554. patch  (the  second one).  Bytes and words cannot be patched individually, every
  555. patch  must be coded as a long, even with 3 bytes identical with original.  When
  556. a  longer  patch  is to be coded, it must be coded as a sequence of these simple
  557. patches.   This  stupid mechanism will be improved in next release.  There is no
  558. order specified, because every patch has its own, fully coded offset.  It allows
  559. simple  addition  of new patches to the existing file.  Patch file must be ended
  560. with two longs of zeros.
  561.     From  revision  3.12,  there may be also relocative patches coded.  They
  562. differ from a standard patch by the most significant bit of offset, which is set
  563. to  1.  In this case, current loading address is added to the patch value before
  564. storing  it.  This feature is needed for 39.110 patch.  For example, to code JMP
  565. start+$7F900  patch  to  the address start+$100, where start is the current loa-
  566. ding  address,  use the sequence 000000fe XXXX4ef9 80000102 0007f900, where XXXX
  567. is original contents of ROM at address start+$fe.
  568.  
  569. N.B. To create patch file, I'm using this algorithm:
  570. 1) First, I patch new values directly into the kickstart with a debugger.
  571. 2) I load another copy of kickstart into memory (my 6Megs allow this)
  572. 3) I write simple program to generate the patch file directly with debugger's
  573.    assembler (I'm using Mon 1.55 by Timo Rossi, which seems to be the most
  574.    powerful PD debugger known to me). This program is so simple so I never save
  575.    it.
  576. 4) I save (with the debugger) the table to the disk.
  577.  
  578. 9. Known bugs
  579. =============
  580.  
  581. On certain configurations, SKick crashes when kicking the image.  However, after
  582. a  manual  reset,  prepared image is kicked up and problems no more occur.  This
  583. bug  seems  to  occur  mostly  on A1000 and its cause is unknown yet.  The final
  584. kick-up  is done by performing system restart almost identical with manual reset
  585. and I don't know why this sometimes doesn't work.
  586. Problems  may  be  also  caused  by  some  non-standard add-ons and boards.  For
  587. example, Skick causes problems when ALF harddisk is on the system.  Its resident
  588. modules  interfere  with  SKick's module and the results are unstable.  However,
  589. under certain limitations (load image below the ALF's modules, not to the end of
  590. RAM) SKick seems to be usable.
  591.  
  592.  
  593. 10. Final words...
  594. ==================
  595.  
  596. This  program,  its documentation and all other files contained in this archive,
  597. are  (C) Copyright Pavel Troller, Jagellonska 16, 13000 Praha 3, Czech Republic.
  598. This  package is provided as is, any warranties cannot be applied.  Any usage of
  599. this program or other parts of this archive, will be done at Your own risk!
  600.  
  601.  
  602. If You have any suggestions, questions, criticisms or flames please feel free to
  603. write  me.  I'm sorry for the fact I'm very busy and I cannot reply by any other
  604. form  than  E-mail.   Also updates, new .RTB and .PAT files may be sent only via
  605. elec- tronic media.  Don't send disks, I will never return them!!!
  606.  
  607. My email address is:
  608.             Internet:    PATROL@ACI.CVUT.CS
  609.             BITNET:        PATROL@CSPUNI12.BITNET
  610.  
  611.